﻿#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

//class A
//{
//public:
//	virtual void func1()
//	{
//		cout << "A::func1" << endl;
//	}
//public:
//	int _a;
//};
//
//class B:/*virtual*/ public A
//{
//public:
//	/*virtual*/ void func1()
//	{
//		cout << "B::func1" << endl;
//	}
//public:
//	int _b;
//};
//class C :/*virtual*/ public A
//{
//public:
//	virtual void func1()
//	{
//		cout << "C::func1" << endl;
//	}
//public:
//	int _c;
//};
//class D :public B,public C
//{
//public:
//	virtual void func1()
//	{
//		cout << "D::func1" << endl;
//	}
//public:
//	int _d;
//};
//
//int main()
//{
//	D d;
//	d.func1();
//
//	return 0;
//}

//else
//{
//
//	Node* LMin = cur->_left;
//	while (LMin->_right)
//	{
//		LMin = LMin->_right;
//	}
//	swap(cur->key, LMin->key);
//	delete *LMin;
//}

//以下程序输出结果是()
//﻿class A
//{
//public:
//    A() :m_iVal(0) { test(); }
//    virtual void func() { std::cout << m_iVal << ‘ ’; }
//    void test() { func(); }
//public:
//    int m_iVal;
//};
//class B : public A
//{
//public:
//    B() { test(); }
//    virtual void func()
//    {
//        ++m_iVal;
//        std::cout << m_iVal << " ";
//    }
//};
//
//
//
//int main(int argc, char* argv[])
//{
//    A* p = new B;
//    p->test();
//    return 0;
//}


class A
{
public:
    /*virtual */void f()
    {
        cout << "A::f()" << endl;
    }
};
class B : public A
{
private:
    /*virtual */void f()
    {
        cout << "B::f()" << endl;
    }
};
int main()
{
    A* pa = (A*)new B;
    pa->f();
    return 0;
}